﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using DTO;
namespace DAO
{
    public class KhuVucDAO
    {
        // Xóa Khu Vực
        public void XoaKhuVuc(int ID_Khu_Vuc)
        {
            // Tạo Kết Nối CSDL
            SqlConnection myCONN = DataProvider.ConnectDB();

            //Viết Câu Lệnh SQL
            string mySQL = "DELETE FROM KHUVUC WHERE Id_Khu_Vuc = @ID_Khu_Vuc ";

            // Thực hiện truy vấn
            SqlCommand cmd = new SqlCommand(mySQL, myCONN);
            SqlParameter para = cmd.Parameters.Add("@ID_Khu_Vuc", System.Data.SqlDbType.Int, -1);
            para.Value = ID_Khu_Vuc;

            cmd.ExecuteReader();


        }
        public bool CapNhatKhuVuc(int id, string ten)
        {
            SqlConnection conn = DataProvider.ConnectDB();
            SqlTransaction transaction = conn.BeginTransaction();
            try
            {
                string sql = "update KHUVUC set Ten_Khu_Vuc=N'" + ten + "' where Id_Khu_Vuc='" + id + "' ";
                SqlCommand cmd = new SqlCommand(sql, conn);
                cmd.Transaction = transaction;
                cmd.ExecuteNonQuery();
                transaction.Commit();
                return true;
            }
            catch
            {
                transaction.Rollback();
                //throw new Exception("Lôi update "+error.Message);
                return false;
            }

        }
       // Lấy Danh Sách Khu Vực
        public List<KhuVucDTO> DanhSachKhuVuc()
        {
            // Tạo Kết Nối CSDL
            SqlConnection myCONN = DataProvider.ConnectDB();

            //Viết Câu Lệnh SQL
            string mySQL = "SELECT Id_Khu_Vuc,Ten_Khu_Vuc FROM KHUVUC ";

            // Thực hiện truy vấn
            SqlCommand cmd = new SqlCommand(mySQL,myCONN);

            // Lấy dữ liệu từ kết quả truy vấn
            SqlDataReader reader = cmd.ExecuteReader();

            // Đổ dữ liệu vào danh sách đối tượng Khu Vực
            List<KhuVucDTO> listKVDTO = new List<KhuVucDTO>();
            while(reader.Read()){
                KhuVucDTO singleRecord = new KhuVucDTO();
                singleRecord.Id_Khu_Vuc = reader.GetInt32(0);
                singleRecord.Ten_Khu_Vuc = reader.GetString(1);
                listKVDTO.Add(singleRecord);
            }

            // Đóng kết nối CSDL
            myCONN.Close();

            // Trả kết quả
            return listKVDTO;
        }


        // Xóa Tất Cả Dữ Liệu 
        public void XoaTatCa()
        {
            // Tạo Kết Nối CSDL
            SqlConnection myCONN = DataProvider.ConnectDB();

            //Viết Câu Lệnh SQL
            string mySQL = "DELETE FROM KHUVUC ";

            // Thực hiện truy vấn
            SqlCommand cmd = new SqlCommand(mySQL, myCONN);

            // Thực hiện câu truy vấn
            cmd.ExecuteReader();

            // Đóng kết nối CSDL
            myCONN.Close();
        }
        // Chức năng Phục Hồi Danh Sách
        public void PhucHoiThemKhuVucVoiIDTung(KhuVucDTO khuVuc)
        {
            // Tạo Kết Nối CSDL
            SqlConnection myCONN = DataProvider.ConnectDB();

            //Viết Câu Lệnh SQL
            string mySQL = "SET IDENTITY_INSERT KHUVUC ON INSERT INTO KHUVUC(Id_Khu_Vuc,Ten_Khu_Vuc) VALUES(@IDKhuVuc,@TenKhuVuc)";

            // Thực hiện truy vấn
            SqlCommand cmd = new SqlCommand(mySQL, myCONN);
            SqlParameter para;
            // Add Id_Khu_Vuc
            para = cmd.Parameters.Add("@IDKhuVuc", System.Data.SqlDbType.Int);
            para.Value = khuVuc.Id_Khu_Vuc;
            // Add Ten_Khu_Vuc
            para = cmd.Parameters.Add("@TenKhuVuc", System.Data.SqlDbType.NVarChar);
            para.Value = khuVuc.Ten_Khu_Vuc;
            // Thực hiện câu truy vấn
            cmd.ExecuteReader();

            // Đóng kết nối CSDL
            myCONN.Close();
        }
        public int ThemKhuVuc(KhuVucDTO kvDTO)
        {
            // Tạo Kết Nối CSDL
            SqlConnection myCONN = DataProvider.ConnectDB();

            //Viết Câu Lệnh SQL
            string mySQL = "INSERT INTO KHUVUC(Ten_Khu_Vuc) VALUES(@Ten_Khu_Vuc) ";

            // Thực hiện truy vấn
            SqlCommand cmd = new SqlCommand(mySQL, myCONN);
            SqlParameter para = cmd.Parameters.Add("@Ten_Khu_Vuc", System.Data.SqlDbType.NVarChar, -1);
            para.Value = kvDTO.Ten_Khu_Vuc;
            int kq;
            try
            {
                kq = cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                return 0;
            }
            myCONN.Close();
            return 1;

        }


    }
}
